“Sprinting” refers to temporarily boosting processor performance beyond nominal levels. Computational sprinting may be used to activate a greater number of cores and/or operate at a higher frequency than otherwise possible in a multi-core processor in accordance with a particular thermal design. The frequency of the multi-core processor may be boosted using more cores or threads, and/or increasing the amount of available pipeline resources to yield better performance.
Even though a processor may have thermal headroom available, sprinting may be performed for the incorrect application or application phase. For example, sprinting benefits may be limited due to memory restrictions, a small amount of parallelism or a small amount of work.
A method and apparatus for making efficient sprinting decisions in a multi-core processor would be desirable in order to improve energy efficiency and sprinting effectiveness.